之前的文章已經寫過預處理,但這邊的又不太一樣姑且還是做一下。
Features資料預處理
查看image的shape
print ('x_train_image:',x_train_image.shape)
print ('y_train_label:',y_train_label.shape)
輸出:
x_train_image: (60000, 28, 28)
y_train_label: (60000,)
發現是28x28的二維數字影像
以reshape將二維數字影像,轉換為一維向量
再以astype轉換為float,共784個float數字x_Train=x_train_image.reshape(60000,784).astype('float32')
x_Test=x_test_image.reshape(10000,784).astype('float32')
print('x_train:',x_Train.shape)
print('x_test:',x_Test.shape)
輸出:轉換後會變這樣
x_train: (60000, 784)
x_test: (10000, 784)
x_train_image[0]
輸出:
可以看到影像是一堆數字
由0到255的數字組成,代表圖形每個點的灰階深淺
將數字影像標準化
x_Train_normalize = x_Train/255
x_Train_normalize = x_Test/255
x_Train_normalize[0]
輸出:
標準化後變為由0到1的數字組成
Labels資料預處理
y_train_label[:5]
輸出:
array([5, 0, 4, 1, 9], dtype=uint8)
In [24]:
執行OneHotencoding轉換
y_TrainOneHot = np_utils.to_categorical(y_train_label)
y_TestOneHot = np_utils.to_categorical(y_test_label)
y_TrainOneHot[:5]
輸出:
第一筆資料原來的真實值是5,執行轉換後換成只有第五個數字是1,其他都是0。